/**
 * 
 */
package travibot.core;

import java.io.InputStream;

/**
 * 
 * @author Petr Macek
 * 
 */
public class ParserFactory {

    private Parser genericParser;

    private Parser loginPageParser;

    private Parser villagesParser;

    private VillageParser villagePageParser;

    private VillageParser fieldsPageParser;

    public Parser getParser(Parser.ParserType parserType, InputStream inputStream) {

        Parser result = null;

        if (parserType.equals(Parser.ParserType.LOGIN_PAGE))
            result = loginPageParser;
        else if (parserType.equals(Parser.ParserType.FIELDS))
            result = fieldsPageParser;
        else if (parserType.equals(Parser.ParserType.CITY))
            result = villagePageParser;
        else if (parserType.equals(Parser.ParserType.VILLAGES))
            result = villagesParser;
        else
            result = genericParser;

        result.parse(parserType, inputStream);

        return result;
    }

    public void setGenericParser(GenericParser genericParser) {

        this.genericParser = genericParser;
    }

    public void setLoginPageParser(LoginPageParser loginPageParser) {

        this.loginPageParser = loginPageParser;
    }

    public void setVillagePageParser(VillagePageParser villagePageParser) {

        this.villagePageParser = villagePageParser;
    }

    public void setFieldsPageParser(FieldsPageParser fieldsPageParser) {

        this.fieldsPageParser = fieldsPageParser;
    }

    public void setVillagesParser(Parser villagesParser) {

        this.villagesParser = villagesParser;
    }

}
